package times

// 扩充函数库, 因int类型字段区别, 故时间戳不可能为int类型, 所以此处直接省略int类型的转换
// 另,
import (
	"time"
)

// 项目中的常量信息列表
const (
	TimeDate       = "2006-01-02"
	TimeInfo       = "2006-01-02 15:04:05"
)

// 获取当前日期和时间
func Timestamps() string {
	return time.Now().Format(TimeInfo)
}
// 获取当前日期和时间
func TimestamDate() string {
	return time.Now().Format(TimeDate)
}

// 获取当前时间戳, uint格式的
func Timestamp() uint {
	return uint(TimestampInt64())
}

// 获取当前时间戳, int64格式的
func TimestampInt64() int64 {
	return time.Now().Unix()
}

// 获取当前时间戳, uint64格式的
func TimestampUint64() uint64 {
	return uint64(TimestampInt64())
}

// Uint字符串转换为时间格式
func TimestampToTime(times uint) string {
	return TimestampInt64ToTime(int64(times))
}

// Uint64字符串转换为时间格式
func TimestampInt64ToTime(times int64) string {
	if times <= 0 {
		return ""
	}
	t := time.Unix(times, 0)
	return t.Format(TimeInfo)
}

// Uint64字符串转换为时间格式
func TimestampUint64ToTime(times uint64) string {
	return TimestampInt64ToTime(int64(times))
}

// Uint字符串转换为日期格式
func TimestampToDate(times uint) string {
	return TimestampInt64ToTime(int64(times))
}

// Uint字符串转换为日期格式
func TimestampInt64ToDate(times int64) string {
	if times <= 0 {
		return ""
	}
	t := time.Unix(times, 0)
	return t.Format(TimeDate)
}

// Uint64字符串转换为日期格式
func TimestampUint64ToDate(times uint64) string {
	return TimestampInt64ToTime(int64(times))
}
